home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / kids / mickey printstudio / MFSTUDIO.MST < prev    next >
Text File  |  1996-01-14  |  8KB  |  265 lines

  1. '**************************************************************************
  2. '* Mickey and Friends Print Studio Setup Script
  3. '**************************************************************************
  4.  
  5. '' '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST LICENSE       = 101
  13. CONST LICENSEFAIL   = 105
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST OPTIONS       = 800
  20. CONST APPHELP       = 900
  21. CONST MODELESS      = 5000
  22. CONST NOSPACE       = 6350
  23. CONST BADPATH       = 6400
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 2
  27.              
  28. GLOBAL DEST$        ''Default destination directory.
  29.  
  30. DECLARE SUB Install
  31. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  32. DECLARE FUNCTION DUnzipProc LIB "mscuistf.dll" (zipfile$, srcespec$, destdir$) AS INTEGER
  33. DECLARE FUNCTION DoAddFontResource LIB "mscuistf.dll" (fontfile$) AS INTEGER
  34.  
  35.  
  36. INIT:
  37.     MCSIZE&=13364000
  38.     WINSYSSIZE&=91000
  39.  
  40.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  41.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  42.  
  43.  
  44.     SetBitmap CUIDLL$, LOGO
  45.     SetTitle "Mickey and Friends Print Studio Setup Program"
  46.               
  47.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  48.     IF szInf$ = "" THEN
  49.         szInf$ = GetSymbolValue("STF_CWDDIR") + "mfstudio.INF"
  50.     END IF
  51.     ReadInfFile szInf$
  52.  
  53.     DEST$ = "C:\m&fps"
  54.  
  55. '$IFDEF DEBUG
  56.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  57.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  58.     IF IsDriveValid(WinDrive$) = 0 THEN
  59.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  60.         GOTO QUIT
  61.     END IF
  62. '$ENDIF ''DEBUG
  63.  
  64.     sz$ = UIStartDlg(CUIDLL$, LICENSE, "FInfoDlgProc", APPHELP, HELPPROC$)
  65.     
  66.     IF sz$ = "CONTINUE" THEN 
  67.        UIPop 1     
  68.        goto WELCOME
  69.     ELSEIF sz$ = "CANCEL" THEN
  70.        UIPop 1
  71.        sz$ = UIStartDlg(CUIDLL$, LICENSEFAIL, "FInfoDlgProc", APPHELP, HELPPROC$)
  72.        UIPop 1        
  73.        goto doquit
  74.     END IF
  75.  
  76. WELCOME:   
  77.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  78.     IF sz$ = "CONTINUE" THEN
  79.         UIPop 1
  80.     ELSE
  81.         UIPop 1
  82.         goto doquit
  83.     END IF
  84.  
  85. GETPATH:
  86.     SetSymbolValue "EditTextIn", DEST$
  87.     SetSymbolValue "EditFocus", "END"
  88. GETPATHL1:
  89.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  90.     DEST$ = GetSymbolValue("EditTextOut")
  91.  
  92.     IF sz$ = "CONTINUE" THEN
  93.         IF IsDirWritable(DEST$) = 0 THEN
  94.             GOSUB BADPATH
  95.             GOTO GETPATHL1
  96.         END IF
  97.         UIPop 1
  98.     ELSEIF sz$ = "REACTIVATE" THEN
  99.         GOTO GETPATHL1
  100.     ELSEIF sz$ = "BACK" THEN
  101.         UIPop 1
  102.         GOTO WELCOME
  103.     ELSE
  104.         GOSUB ASKQUIT
  105.         GOTO GETPATH
  106.     END IF
  107.     WINDRIVE$ = UCASE$(MID$(GetWindowsDir, 1, 1))
  108.     DESTDRIVE$= UCASE$(MID$(DEST$,1,1))
  109.     WSIZE2&=0
  110.     DSIZE2&=MCSIZE&
  111.     free& = GetFreeSpaceForDrive(WINDRIVE$)
  112.     if WINDRIVE$=DESTDRIVE$ THEN
  113.         DSIZE2&=DSIZE2&+WINSYSSIZE&
  114.         if free&<DSIZE2& THEN
  115.             sz$ = UIStartDlg(CUIDLL$, NOSPACE, "FInfoDlgProc", APPHELP, HELPPROC$)
  116.             UIPop 1
  117.             IF sz$ <> "CONTINUE" THEN
  118.                 goto GETPATH
  119.             END IF
  120.         END IF
  121.     ELSE
  122.         free& = GetFreeSpaceForDrive(WINDRIVE$)
  123.         free2&= GetFreeSpaceForDrive(DESTDRIVE$)
  124.         if free& < WSIZE2& OR free2& < DSIZE2& THEN
  125.             sz$ = UIStartDlg(CUIDLL$, NOSPACE, "FInfoDlgProc", APPHELP, HELPPROC$)
  126.             UIPop 1
  127.             IF sz$ <> "CONTINUE" THEN
  128.                 goto GETPATH
  129.             END IF
  130.         END IF
  131.     end if
  132.  
  133.     Install
  134. QUIT:
  135.     ON ERROR GOTO ERRQUIT
  136.  
  137.     IF ERR = 0 THEN
  138.         dlg% = EXITSUCCESS
  139.     ELSEIF ERR = STFQUIT THEN
  140.         dlg% = EXITQUIT
  141.     ELSE
  142.         dlg% = EXITFAILURE
  143.     END IF
  144. QUITL1:
  145.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  146.     IF sz$ = "REACTIVATE" THEN
  147.         GOTO QUITL1
  148.     END IF
  149.     UIPop 1
  150.  
  151.     END
  152.  
  153. ERRQUIT:
  154.     i% = DoMsgBox("Setup sources were corrupted, call Disney Interactive support!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  155.     END
  156.  
  157.  
  158.  
  159. BADPATH:
  160.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  161.     IF sz$ = "REACTIVATE" THEN
  162.         GOTO BADPATH
  163.     END IF
  164.     UIPop 1
  165.     RETURN
  166.  
  167.  
  168.  
  169. ASKQUIT:
  170.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  171.  
  172.     IF sz$ = "EXIT" THEN
  173.         UIPopAll
  174.         ERROR STFQUIT
  175.     ELSEIF sz$ = "REACTIVATE" THEN
  176.         GOTO ASKQUIT
  177.     ELSE
  178.         UIPop 1
  179.     END IF
  180.     RETURN
  181.  
  182. DOQUIT:
  183.     ERROR STFQUIT
  184.     RETURN
  185.  
  186.  
  187.  
  188.  
  189. '*************************************************************************
  190. '**
  191. '** Purpose:
  192. '**     Builds the copy list and performs all installation operations.
  193. '** Arguments:
  194. '**     none.
  195. '** Returns:
  196. '**     none.
  197. '*************************************************************************
  198. SUB Install STATIC
  199.  
  200.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  201.     CreateDir DEST$, cmoNone
  202.  
  203.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  204.     WriteToLogFile ""
  205.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  206.     WriteToLogFile ""
  207.     WriteToLogFile "May have had to create the directory: " + DEST$
  208.     WriteToLogFile ""
  209.     'AddSectionFilesToCopyList "ZIPFILES", SrcDir$,GetSymbolValue("STF_CWDDIR")
  210.     'AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  211.     AddSectionFilesToCopyList "NEWFONTS",SrcDir$, MakePath(GetWindowsDir,"SYSTEM")
  212.     CopyFilesInCopyList
  213.     tempdll$="mscuistf.dll"
  214.  
  215.     temppath$=MakePath(GetSymbolValue("STF_SRCDIR"),"MFSTUDIO.ZIP")
  216.     sz$ = UIStartDlg(tempdll$, MODELESS, "FModelessDlgProc", APPHELP, HELPPROC$)
  217.     CursorSave% = ShowWaitCursor()
  218.     i%=DUnzipProc(temppath$,"*.*",DEST$)
  219.     'RemoveFile temppath$,cmoForce
  220.     RestoreCursor CursorSave%
  221.     UIPop 1
  222.     if i%<> 0 THEN 
  223.         ERROR STFQUIT
  224.     ELSE
  225.         CreateIniKeyValue "WIN.INI", "Fonts", "Donald (TrueType)","donarg__.FOT",cmoOverwrite
  226.         CreateIniKeyValue "WIN.INI", "Fonts", "Mickey (TrueType)","mickrg__.FOT",cmoOverwrite
  227.         CreateIniKeyValue "WIN.INI", "Fonts", "Minnie (TrueType)","minnrg__.FOT",cmoOverwrite
  228.         wsysdir$=MakePath(GetWindowsDir,"SYSTEM")
  229.         j%=DoAddFontResource(MakePath(wsysdir$,"donarg__.FOT"))
  230.         j%=DoAddFontResource(MakePath(wsysdir$,"mickrg__.FOT"))
  231.         j%=DoAddFontResource(MakePath(wsysdir$,"minnrg__.FOT"))
  232.         CreateProgmanGroup "Disney Interactive ", "", cmoNone
  233.         ShowProgmanGroup   "Disney Interactive ", 1, cmoNone
  234.         CreateProgmanItem  "Disney Interactive ", "Mickey and Friends Print Studio",MakePath(DEST$,"m&fps.exe"), "", cmoOverwrite
  235.     END IF
  236.  
  237.     CloseLogFile
  238.  
  239. END SUB
  240.  
  241.  
  242.  
  243. '**
  244. '** Purpose:
  245. '**     Appends a file name to the end of a directory path,
  246. '**     inserting a backslash character as needed.
  247. '** Arguments:
  248. '**     szDir$  - full directory path (with optional ending "\")
  249. '**     szFile$ - filename to append to directory
  250. '** Returns:
  251. '**     Resulting fully qualified path name.
  252. '*************************************************************************
  253. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  254.     IF szDir$ = "" THEN
  255.         MakePath = szFile$
  256.     ELSEIF szFile$ = "" THEN
  257.         MakePath = szDir$
  258.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  259.         MakePath = szDir$ + szFile$
  260.     ELSE
  261.         MakePath = szDir$ + "\" + szFile$
  262.     END IF
  263. END FUNCTION
  264.  
  265.